<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 取数组中最大值: 
    var list = [45, 21, 36, 94, 5, 72];

    // 冒泡排序:
    // 相邻的两个数做比较, 大值放后面 -> 


    // 思路1: 
    // 取第一个值 和 它后面的比较 -> 如果第一个值大于第二个值 -> 交换两个数的位置(大值放后面)
    // 取第二个数(前2个数中较大的)  和它后面的比较 -> 如果第二个值大于第三个值 -> 交换两个数的位置(大值放后面)
    // ...  以此类推    

    // 第一轮  
    // 原数组: [45, 21, 36, 94, 5, 72]
    // 45 21  [21, 45, 36, 94, 5, 72]
    // 45 36  [21, 36, 45, 94, 5, 72]
    // 45 94  [21, 36, 45, 94, 5, 72]
    // 94 5  [21, 36, 45, 5, 94, 72]
    // 94 72  [21, 36, 45, 5, 72, 94]

    // 比较完毕: 最大值放在最后面  arr[arr.length-1]

    // 注意:最后一个数 没有必要和后面的比较 -> 排除最后一个  -> i < list.length-1
    for (var i = 0; i < list.length - 1; i++) {
        // list[i]    第i个值
        // list[i+1]  它的后一个值
        if (list[i] > list[i + 1]) {
            var temp = list[i];   //中间变量 存储当前值
            list[i] = list[i + 1]; // 将后一个值 赋值给 当前位置
            list[i + 1] = temp;  // 将中间变量 赋值给 后一个位置
        }
    }

    console.log(list);


    // 第二轮: 在第一轮的基础上
    // 原数组: [21, 36, 45, 5, 72, 94]
    // 21 36  [21, 36, 45, 5, 72, 94]
    // 36 45  [21, 36, 45, 5, 72, 94]
    // 45 5   [21, 36, 5, 45, 72, 94]
    // 45 72  [21, 36, 5, 45, 72, 94]
    // 72 94  [21, 36, 5, 45, 72, 94]   // 多余

    // 第二轮结果:得到第二大的数放在倒数第二的位置

    for (var i = 0; i < list.length - 1; i++) {
        // list[i]    第i个值
        // list[i+1]  它的后一个值
        if (list[i] > list[i + 1]) {
            var temp = list[i];   //中间变量 存储当前值
            list[i] = list[i + 1]; // 将后一个值 赋值给 当前位置
            list[i + 1] = temp;  // 将中间变量 赋值给 后一个位置
        }
    }

    console.log(list);

    // 以此类推: n个数 来 n-1 轮

    for (var i = 0; i < list.length - 1; i++) {
        // list[i]    第i个值
        // list[i+1]  它的后一个值
        if (list[i] > list[i + 1]) {
            var temp = list[i];   //中间变量 存储当前值
            list[i] = list[i + 1]; // 将后一个值 赋值给 当前位置
            list[i + 1] = temp;  // 将中间变量 赋值给 后一个位置
        }
    }

    console.log(list);



    for (var i = 0; i < list.length - 1; i++) {
        // list[i]    第i个值
        // list[i+1]  它的后一个值
        if (list[i] > list[i + 1]) {
            var temp = list[i];   //中间变量 存储当前值
            list[i] = list[i + 1]; // 将后一个值 赋值给 当前位置
            list[i + 1] = temp;  // 将中间变量 赋值给 后一个位置
        }
    }

    console.log(list);




    for (var i = 0; i < list.length - 1; i++) {
        // list[i]    第i个值
        // list[i+1]  它的后一个值
        if (list[i] > list[i + 1]) {
            var temp = list[i];   //中间变量 存储当前值
            list[i] = list[i + 1]; // 将后一个值 赋值给 当前位置
            list[i + 1] = temp;  // 将中间变量 赋值给 后一个位置
        }
    }

    console.log(list);


















</script>

</html>